package com.yuelao.yuelao_backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuelao.yuelao_backend.dto.MessageDTO;
import com.yuelao.yuelao_backend.entity.GroupMessage;

import java.util.List;

/**
 * 群聊消息Service
 * 重构说明：新增，用于处理群聊消息
 */
public interface GroupMessageService extends IService<GroupMessage> {

    /**
     * 获取群聊记录
     * @param groupId 群聊ID
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 群聊记录列表
     */
    List<MessageDTO> getGroupChatHistory(Long groupId, int pageNum, int pageSize);

    /**
     * 发送群聊消息
     * @param senderId 发送者ID
     * @param groupId 群ID
     * @param messageType 消息类型
     * @param content 消息内容
     * @param mediaUrl 媒体文件URL
     * @return 是否成功
     */
    boolean sendGroupMessage(Long senderId, Long groupId, String messageType,
                            String content, String mediaUrl);

    /**
     * 撤回群聊消息
     * @param messageId 消息ID
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean revokeGroupMessage(Long messageId, Long userId);

    /**
     * 将 GroupMessage 实体转换为 MessageDTO
     * @param groupMessage GroupMessage 实体
     * @return MessageDTO
     */
    MessageDTO convertToMessageDTO(GroupMessage groupMessage);
}

